Desde el punto de vista de la Arquitectura, un sistema distribuido es aquel que está formado por varios computadores, denominados sitios o nodos.
En el contexto de las bases de datos, es un sistema donde la base de datos se encuentra almacenada en varios computadores conectados a través de la red (pública o privada).
Las principales características de los sistemas distribuidos son:
Concurrencia o paralelismo real: al estar formados por la unión de distintos computadores no comparten memoria principal ni disco.
Escalabilidad.
Ausencia de reloj global.
Administración por separado de cada sitio.
Se pueden diferenciar dos tipos de transacciones: locales y globales.
Ventajas:
Datos compartidos: Acceso a datos de forma transparente ya que la conexión es siempre al mismo punto aunque los datos estén en una localización distinta.
Autonomía: Cada ubicación es capaz de mantener cierto nivel de control sobre los propios datos que almacena.
Disponibilidad: Permite cierta tolerancia a fallos ante la caída de un nodo si los datos se encuentran replicados.
Desventajas:
Coste de desarrollo de software.
Mayor probabilidad de errores: Como todos los nodos trabajan en paralelo es más complicado asegurar el correcto funcionamiento de las soluciones implementadas.
Mayor sobrecarga de procesamiento: Se requiere mucha comunicación para mantener los nodos sincronizados, lo que puede causar sobrecargas.
Todas los nodos tienen el mismo SGBD, conocen la existencia de otros nodos y cooperan en el procesamiento de las solicitudes.

Si tenemos un modelo con una relación entre tablas, en los sistemas distribuidos tenemos tres alternativas para su almacenamiento:
Se crean
Ventajas: Alta disponibilidad y baja latencia.
Desventajas: Aumento de costes y sobrecarga incrementada durante las actualizaciones al ser necesario actualizar varios sitios.
Consiste en dividir los datos en
La fragmentación puede ser:
Horizontal: La división se hace en base a registros, de tal forma que los registros más utilizados en cada uno de los nodos se almacenan en dicho nodo. Para reconstruir la tabla es necesario recuperar los registros de diferentes nodos (operación unión).
Ejemplo:
Vertical: La división se hace en base a atributos, de tal forma que cada nodo tiene información de todos los registros, pero esta información no es completa, sino que contendrá la parte de los registros que usan más comúnmente en dicho nodo. Para acceder a la tabla completa se realiza una operación de reunión natural, por lo que es necesario incluir la clave primaria en todos los fragmentos.
Ejemplo:
Como el propio nombre indica, es una combinación de las dos anteriores.
Las técnicas de réplica y fragmentación se pueden aplicar sucesivamente a los mismos datos de partida. Un fragmento se puede replicar y a su vez esa réplica ser fragmentada, para luego replicar alguno de esos fragmentos.
Puede haber nodos con diferentes SGBD, no pudiendo asumir que los nodos sean conscientes de la existencia de los demás. Además, pueden contener diferentes esquemas y modelos para la creación de la base de datos.

En los sistemas distribuidos hay que tener en cuenta algunos aspectos adicionales a los ya consideramos en los sistemas centralizados:
Coste de transmisión por la red.
Ganancia de procesamiento en paralelo.
A la hora de realizar una consulta, el procesamiento de esta no es inmediato ya que la base de datos puede estar fragmentada, replicada o ambas. Por esto, el procesamiento de consultas presenta un problema de optimización en el cual se determina el orden en el cual se hace la menor cantidad de operaciones:
Si existe replicación, es necesario elegir sobre que nodo consultar para minimizar el coste de transmisión.
Si existe fragmentación, la elección se complica pues hay que realizar varias uniones para reconstruir las relaciones.